#include "ListaTokens.h"
#include <iostream>


ListaTokens::ListaTokens()
{

}

ListaTokens::~ListaTokens()
{
}

void ListaTokens::setListaTokens(std::list<TToken *> pLista)
{
    this->lista.assign(pLista.begin(), pLista.end());
    posicao = lista.begin();

//    std::cout << "token atual: " << (*posicao)->token << std::endl;
}

TToken ListaTokens::getTokenAtual()
{
	TToken temp(1);
	if ( !(posicao == lista.end()) ) temp = **posicao;
	return temp;
}

TToken ListaTokens::getProxToken()
{
	TToken temp(1);
	if ( !(posicao == lista.end()) )
	{
		posicao++;
		temp = **posicao;
		posicao--;
	}
	return temp;
}

void ListaTokens::avancaPonteiro()
{
	posicao++;
}

void ListaTokens::retrocedePonteiro()
{
	posicao--;
}
